# -*-Tcl-*- (nolinebreak)
# Cache v1.3 created on 2026-10-14 14:39:08
set feature(filesetIndentationPreference) {0.2.1 always-on -1}
set feature(electricMenu) {2.3 global 1 {ensureset electricMenu Electrics

    # Initialization script.
    electricMenu::initialize
} {
    # Activation script.
    electricMenu::activate 1
} {
    # Deactivation script.
    electricMenu::activate 0
} {}}
set feature(navigation) {1.0 global-only 0 {} {
    # Activation script
    nav::initializeNavigation
} {} {}}
set feature(openDocument) {1.5 global-only 0 {
    # Initialization script.  We don't put much in here in case some code is
    # calling [file::openDocument] without this package being activated.
    openDocument::initialize
} {
    # Activation script.
    openDocument::activate 1
} {
    # De-activation script.
    openDocument::activate 0
} {}}
set feature(vcBazaar) {0.1 always-on -1}
set feature(columnsManipulation) {2.2 global-only 0 {
    # Initialization script
} {
	# Activation script.
	cols::activatePackage 1
} {
	# Deactivation script
	cols::activatePackage 0
} {}}
set feature(InSh) {1.4 always-on -1}
set feature(aeom) {1.3 global-only 0 {} {
    tclAE::installEventHandler aevt oapp aeom::handleOpenApp
    tclAE::installEventHandler aevt rapp aeom::handleOpenApp
    tclAE::installEventHandler aevt odoc aeom::handleOpen
    tclAE::installEventHandler aevt pdoc aeom::handlePrint
    tclAE::installEventHandler aevt quit aeom::handleQuit
    
    tclAE::installEventHandler misc dosc aeom::handleDoScript
    tclAE::installEventHandler misc vers aeom::handleVersion
    tclAE::installEventHandler core save aeom::handleSave
	tclAE::installEventHandler GURL GURL aeom::handleGURL
    
    tclAE::aete::register aeom::constructAETE
    
	# QA1070
    # OSAXen are not automatically available in OS X unless
    # you preload them with this AppleEvent (which always
    # returns a -1708 error, even when ScriptEditor does it).
    # There's no harm in sending this event in OS 9.
    catch {tclAE::send -r -s ascr gdut}
    
    # When Alpha is reopened (launched again when already running)
    # and has no documents open already, create a new untitled document.
    # This is required by the HIG but can be irritating.
    newPref flag forceDocumentOnReopen 0 global
    alpha::addToPreferencePage Window forceDocumentOnReopen
    
    aeom::accessor::registerAll
} {} {}}
set feature(javadocComment) {0.3 Java 0 {
	alpha::package require -loose Java 1.4
} {
	if {![info exists Java::menuToken]} {
		Java::buildMenu
	} 
	if {[info exists ::Java::menuToken(main)]} {
		menuItem append $::Java::menuToken(main) "Javadoc Comment" -command Java::javadocComment
	} 
	binding create -tag Java {z '''} Java::javadocComment
} {
	if {[info exists ::Java::menuToken(main)]} {
		menu::removeItems $::Java::menuToken(main) "Javadoc Comment"
	} 
	catch {binding delete -tag Java {z '''}}
} {}}
set feature(viewRects) {0.1 global-only -1}
set feature(spellingAlpha) {0.1 always-on -1}
set feature(bibToHtml) {3.1 Bib 0 {
    # Initialization script.
    # We require Bib 3.6b1 for new 'bibConversions' submenu.
    alpha::package require -loose Bib 3.6b1
} {
    # Activation script.
    # Insert the menu items into the 'bibConversions' submenu
	Bib::insertConversionItem "Bib To Html…"
	Bib::insertConversionItem "Bbl To Html…"
} {
    # Deactivation script.
	if {[info exists Bib::menuToken(bibtexConversions)]} {
		menu::removeItems $Bib::menuToken(bibtexConversions) "Bib To Html…" "Bbl To Html…"
	} 
} {}}
set feature(docPopups) {2.0 always-on -1}
set feature(elecCompletions) {9.3 global-only 0 {
    # Create the "Electric Completions" menu
	namespace eval completion {
		# Create the menu
		variable menuToken 
		set menuToken [menuRef create -title "Electric Completions" -command completion::menuProc] 
		# Insert it in the Preferences menu after the first separator
		menu::insertSubmenu $menu::core(Preferences) {after "(-"} "Electric Completions" $menuToken
		# Populate the menu
		foreach item [list "View Global Completions…" "Add Global Completions…"  "Edit Global Completions…" "Remove Global Completions…" "-"  "Completions Help" "Completions Tutorial" ] {
			menuItem append $menuToken $item
		} 
		unset item
	}
} {
    # load completion code for a mode the first time that mode is used
    hook::register mode::init completion::load "*"
    completion::initialise
} {
    # De-activation script
    hook::deregister mode::init completion::load "*"
} {}}
set feature(backup) {0.3 global 2 {
    # Make a backup every time a file is saved, in either the active file's
    # folder or a specified "Backup Folder" location newPref flag backup 0
    # Folder in which to store backups.  A null value tells Alpha to use
    # the file's current directory.
    newPref var backupFolder ""
    # Extension to add to files when backing them up
    newPref var backupExtension "~"
    # If the previous backup is more recent than this number of hours,
    # then don't make a new backup.  If greater than zero, this means the 
    # backups Alpha has tend to be significantly different to the current file.
	# The value is a fraction of an hour (for instance 0.25 for a quarter).
    newPref float backupAgeRequirementInHours 0.0
    # If a file is larger than this number of kilobytes, do not save
    # a backup copy.  This allows you to avoid creating backups for
    # extremely large files.  If this setting takes the value 0 it is
    # ignored.
    newPref int maximumBackupFileSize 0
    set backup 0
    lunion flagPrefs(Backups) backup
    lunion varPrefs(Backups) backupFolder backupExtension backupAgeRequirementInHours maximumBackupFileSize
} {
	# Activation script
	backup::activate 1
} {
	# Deactivation script
	backup::activate 0
} { 
    # off
}}
set feature(helpMenu) {9.2.4 always-on -1}
set feature(germanUmlaute) {0.3 {TeX Bib} 0 {
    # Initialization script
} {
    # Activation script
    TeX::bindGermanUmlautKeys 1
} {
    # Deactivation script.
    TeX::bindGermanUmlautKeys 0
} {}}
set feature(alphaCocoaDemo) {1.0 global 1 {ensureset alphaCocoaDemo Demo

    # Initialization script.
	demo::initializePackage
} {
	# Activation script.
	demo::activatePackage 1
} {
	# Deactivation script.
	demo::activatePackage 0
} {}}
set feature(internationalMenus) {1.0 global-only 0 {} {
    hook::register keyboard {intlMenu::keyboardChanged} "*"
} {} {}}
set feature(emacs) {1.2 global-only 0 {
    # Initialization script
    emacs::initialize
} {
    # Activation script
	emacs::activate 1
} {
    # Deactivation script
    emacs::activate 0
} {}}
set feature(calculator) {1.1.1 global-only 0 {
    # Initialization script.
	Calc::initialize
} {
    # Activation script.
	Calc::activate 1
} {
    # Deactivation script.
	Calc::activate 0
} {}}
set feature(colors) {0.3 global-only 0 {} {
    # Activation script
	colors::initialize
} {} {}}
set feature(htmlViewers) {1.0 always-on -1}
set feature(openWindowsMenu) {1.3 global-only 0 {} {
    # Activation script
    win::initializeMenu
} {} {}}
set feature(identities) {0.6 always-on -1}
set feature(vfsFileset) {0.3.7 global-only 0 {} {
    if {[::package require vfs] == 1.2} {
	# Fix one bug in 1.2 which will hit us
	catch {
	    ::vfs::autoMountExtension "" ::vfs::mk4::Mount vfs::mk4
	    ::vfs::autoMountExtension .bin ::vfs::mk4::Mount vfs::mk4
	    ::vfs::autoMountExtension .kit ::vfs::mk4::Mount vfs::mk4
	    ::vfs::autoMountExtension .tar ::vfs::tar::Mount vfs::tar
	    ::vfs::autoMountExtension .zip ::vfs::zip::Mount vfs::zip
	    ::vfs::autoMountUrl ftp ::vfs::ftp::Mount vfs::ftp
	    ::vfs::autoMountUrl file ::vfs::fileUrlMount vfs
	    ::vfs::autoMountUrl tclns ::vfs::tclprocMount vfs::ns
	}
    }
    hook::register editHook fileset::vfs::autoMount .exe .zip .kit .tar
    hook::register unixModeHook fileset::vfs::scripdocMount tclkit
    hook::register unixModeHook fileset::vfs::scripdocMount tclkitsh
    if {![info exists unixMode(tclkit)]} {
	set unixMode(tclkit) Tcl
    }
    if {![info exists unixMode(tclkitsh)]} {
	set unixMode(tclkitsh) Tcl
    }
    catch {::vfs::autoMountExtension .kit ::vfs::mk4::Mount vfs::mk4}
    catch {::vfs::autoMountExtension .exe ::vfs::mk4::Mount vfs::mk4}
} {} {}}
set feature(macros) {2.3 always-on -1}
set feature(vcMercurial) {0.1 always-on -1}
set feature(synchronizer) {3.0 global 0 {
    # Initialization script
    sync::initializePackage
} {
	# Activation script
	sync::activate 1
} {
    # De-activation script
    sync::activate 0
} {}}
set feature(marks) {1.1 always-on -1}
set feature(bindings) {0.1 global-only -1}
set feature(compare) {0.3 always-on -1}
set feature(versionControl) {0.5 global-only 0 {
	# Initialization script.
	vcs::initializePackage
} {
    # Activation script.
    # Currently these hooks are unused
    hook::register   unlockHook vcs::manualUnlock *
    hook::register   lockHook   vcs::manualLock   *
	# Add a version control prefs panel, mapped to the 'vcs' storage
	package::addPrefsDialog versionControl vcs
} {
    # Deactivation script.
    hook::deregister unlockHook vcs::manualUnlock *
    hook::deregister lockHook   vcs::manualLock   *
	# Remove the prefs panel
	package::removePrefsDialog versionControl vcs	
} {}}
set feature(textStatistics) {0.1 global-only 0 {
    # Initialization script
} {
 	# Activation script
	tstat::activate 1
} {
	# De-activation script
	tstat::activate 0
} {}}
set feature(speech) {2.0 global-only 0 {
    # Initialization script.
    speak::initializePackage
} {
    # Activation script.
    speak::activatePackage 1
} {
    # Deactivation script.
    speak::activatePackage 0
} {}}
set feature(vcMonotone) {0.1 always-on -1}
set feature(savedMacros) {2.3 global-only 0 {
    # Initialization script.
    macro::initializePackage
} {
    # Activation script: insert the menus.
    macro::activatePackage 1
} {
    # Deactivation script: remove the menus.
    macro::activatePackage 0
} {}}
set feature(incrementalSearch) {1.3 global-only 0 {} {
	search::initIncrementalSearch
} {} {}}
set feature(elecExpansions) {9.4 global-only 0 {
    # Initialization script.
	expansion::initializePackage
} {
    # Activation script.
    expansion::activatePackage 1
} {
    # Deactivation script.
    expansion::activatePackage 0
} {}}
set feature(newDocument) {1.3 global-only 0 {
    # Initialization script.  We don't put much in here in case some code is
    # calling [file::newDocument] without this package being activated.
    newDocument.tcl
} {
	# Activation script.
	 newDocument::activate 1
} {
	# De-activation script.
	newDocument::activate 0
} {}}
set feature(filesetMenu) {4.1 global 1 {ensureset filesetMenu Filesets

    # Initialization script.
    filesetMenu::initialize
} {
    # Activation script.
    filesetMenu::activate 1
} {
    # Deactivation script.
    filesetMenu::activate 0
} {}}
set feature(wikiMenu) {1.3 global 1 {ensureset wikiMenu Wiki

    # Initialization script.
    Wiki::initializeMenu
} {
    # Activation script.
    Wiki::activateMenu 1
} {
    # Deactivation script.
    Wiki::activateMenu 0
} {}}
set feature(appPaths) {1.0 always-on -1}
set feature(error) {1.2 always-on -1}
set feature(fonts) {1.0 global-only -1}
set feature(copyRing) {2.3 global-only 0 {
    # Initialization script.
    copyRing::initialize
} {
    # Activation script.
    copyRing::activate 1
} {
    # Deactivation script.
    copyRing::activate 0
} {}}
set feature(tcl-TkAPICompletion) {0.2 {C C++ Objc} 0 {
    # Initialization script.
    C::tcltk::initializePackage
} {
    # Activation script.
    C::tcltk::activatePackage 1
} {
    # Deactivation script.
    C::tcltk::activatePackage 0
} {}}
set feature(filesetRemoteMirror) {0.4.0 always-on -1}
set feature(elecCorrections) {1.2 global-only 0 {
    # Initialization script.
	correction::initializePackage
} {
    # Activation script.
    correction::activatePackage 1
} {
    # Deactivation script.
    correction::activatePackage 0
} {}}
set feature(recentFiles) {1.5 global-only 0 {
    # Initialization script.
    recentfiles::initializePackage
} {
    # Activation script.
    recentfiles::activatePackage 1
} { 
    # Deactivation script.
    recentfiles::activatePackage 0
} {}}
set feature(windowZoom) {1.3 global-only 0 {
    # Initialization script
} {
    # Activation script
    winZoom::activate 1
} {
    # Deactivation script
    winZoom::activate 0
} {}}
set feature(autoSaveOnSwitch) {0.1.1 global-only 2 {
    # Initialization script.
    
    # To automatically save all open windows which exists as local files
    # (i.e. not new buffers) whenever switching from Alpha to another
    # program, turn this item on||To disable the automatic saving of all
    # open windows when switching from Alpha to another program, turn this
    # item off  newPref flag autoSaveOnSwitch 0
    set autoSaveOnSwitch 0
    lunion flagPrefs(Backups) autoSaveOnSwitch
    set flagPrefs(Backups) [lsort -dictionary $flagPrefs(Backups)]
} {
    # Activation script.
    set autoSaveOnSwitch 1
    hook::register   suspendHook {autoSave::saveOnSwitch}
} {
    # Deactivation script.
    set autoSaveOnSwitch 0
    hook::deregister suspendHook {autoSave::saveOnSwitch}
} { 
    # off
}}
set feature(tags) {0.4 global-only 0 {
    # Initialization script.
	tags::initializePackage
} {
    # Activation script.
    tags::activatePackage 1
} {
    # Deactivation script.
    tags::activatePackage 0
} {}}
set feature(ftpMenu) {1.3 global 1 {ensureset ftpMenu Ftp

    # Initialization script.
    set {newDocTypes(New Ftp Connection)} file::openRemote
} {
    # Activation script.
	ftp::activateMenu 1
	ftp::buildMenu
} {
    # Deactivation script.
	ftp::activateMenu 0
} {}}
set feature(colorsMenu) {1.4 global 1 {ensureset colorsMenu Colors

    # Initialization script.
} {
    # Activation script.
    colors::activateMenu 1
} {
    # Deactivation script.
    colors::activateMenu 0
} {}}
set feature(filesets) {2.1b1 global-only 0 {} {
    # Ensure this file is sourced, and that our defaults and preferences are 
    # properly defined.
    fileset::initializeFilesets
} {} {}}
set feature(dateAndTime) {0.2 global-only 0 {
    # Initialization script.
    datim::initializePackage
} {
    # Activation script.
    datim::activatePackage 1
} {
    # Deactivation script.
    datim::activatePackage 0
} {}}
set feature(boxDrawings) {0.1 global-only 0 {
    # Initialization script
} {
	# Activation script
	boxdraw::activatePackage 1
} {
	# Deactivation script
	boxdraw::activatePackage 0
} {}}
set feature(mailerAlpha) {2.1.1 always-on -1}
set feature(filesetFtpMirror) {0.3.1 always-on -1}
set feature(latexMacrosCycle) {1.2 {"TeX"} 0 {
    # Initialization script.
	
	# The Cycle Left binding is defined by the latexMacrosCycle package and
	# allows you to move to the left inside a macros cycle.
	newPref binding cycleLeft {os ','} TeX "" {TeX::cycleList -1}
	# The Cycle Right binding is defined by the latexMacrosCycle package and
	# allows you to move to the right inside a macros cycle.
	newPref binding cycleRight {os '.'} TeX "" {TeX::cycleList 1}
} {
    # Activation script.
    set TeX::DoLaTeXCycle 1
} {
    # Deactivation script.
    set TeX::DoLaTeXCycle 0
} {}}
set feature(shells) {0.2 always-on -1}
set feature(smartPaste) {0.7.4 global 0 {
    namespace eval smartPaste {}
} {
    # Turn on -- take over from core 'paste'
    hook::procRename ::paste ::smartPaste::paste
} {
    # Turn off -- revert.
    hook::procRevert ::smartPaste::paste
} {}}
set feature(textAlignment) {0.1 global-only 0 {
    # Initialization script
} {
	# Activation script
	textalign::activatePackage 1
} {
	# Deactivation script
	textalign::activatePackage 0
} {}}
set feature(terminal) {1.5.2 always-on -1}
set feature(contextualMenu) {1.5 global-only 0 {
    # Initialization script.
    contextualMenu::initializePackage
} {
    # Activation script.
    contextualMenu::activatePackage 1
} {
    # Deactivation script.
    contextualMenu::activatePackage 0
} {}}
set feature(prompts) {0.2 global-only -1}
set feature(supersearch) {2.4 global-only 0 {
    # Initialize some supersearch array elements.
    # Some of these settings are persistent - saved in the user's prefs.
    # (See [supersearch::activate] for the list of those that are saved.)
    foreach setting [list b keepcapital circular exclude fromcurrpos i  ignorespace inselection lineanchor linestop m multi filesets  notInComments pattern r dotall inSelStart inSelEnd] {
		if {[info exists supersearch($setting)]} {
			continue
		}
		switch -- $setting {
			"circular" - "fromcurrpos" - "i" - "lineanchor" - "linestop" {
				set supersearch($setting) 1
			}
			"b" - "keepcapital" - "exclude" - "ignorespace" - "inselection" -
			"m" - "multi" - "notInComments" - "r" - "dotall" -
			"inSelStart" - "inSelEnd" {
				set supersearch($setting) 0
			}
			"filesets" - "pattern" {
				set supersearch($setting) ""
			}
		}
	} 
    unset setting
    namespace eval supersearch {}
} {
    supersearch::activate
} {
    error "Can't turn supersearch off"
} {}}
set feature(embrace) {1.3 global-only 0 {
    # Initialization script
    embrace.tcl
} {
    # Activation script
    embrace::activatePackage 1
} {
    # Deactivation script
    embrace::activatePackage 0
} {}}
set feature(gsMenu) {0.3 global 1 {ensureset gsMenu GS

	# Initialization script
	GS::initializePackage
} {
	# Activation script
	GS::activateMenu 1
} {
	# Deactivation script
	GS::activateMenu 0
} {}}
set feature(pdfViewers) {1.0 always-on -1}
set feature(lexersMenu) {0.1 global-only 0 {
    # Initialization script
} {
	# Activation script
	lxr::activatePackage 1
} {
	# Deactivation script
	lxr::activatePackage 0
} {}}
set feature(mailMenu) {2.2 {global Mail} 1 {ensureset mailMenu Mail

    # Initialization script.
    Mail::initializeMode
} {
    # Activation script.
    Mail::registerHooks "1"
} {
    # Deactivation script.
    Mail::registerHooks "0"
} {}}
set feature(xserv) {2.2 global-only 0 {} {
  # Internal services
  ::xserv::declareInternal catPipe {Open a pipe through the 'cat' program}
  ::xserv::register catPipe catPipe -mode Alpha -driver {
    return [open "|$params(xserv-cat)" RDWR]
  } -progs {cat}
  # Read saved generic implementations:
  if {[file exists [file join $::PREFS xservGenerics.tcl]]} {
    catch { source [file join $::PREFS xservGenerics.tcl] }
  }
} {} {}}
set feature(sourceforgeMenu) {0.5 global 1 {ensureset sourceforgeMenu SF

	# Initialization script.
} {
	# Activation script.
	sf::activateMenu 1
} {
	# Deactivation script.
	sf::activateMenu 0
} {}}
set feature(clipboardPreferences) {1.4 global-only 0 {
    # Initialization script.
	# 
	# To use the Window Pin for the default region when cutting and pasting
    # should there be no current selection, turn this item on||To only peform
    # [cut] and [copy] operations when there is a selection in the window, turn
    # this item off
    newPref flag cutAndCopyUsingPin 0 global
    # To adjust the whitespace when cutting or pasting a word in the current
    # window, turn this item on||To disable the adjustment of whitespace when
    # cutting or pasting a word in the current window, turn this item off
    newPref flag cutPasteWhitespace 0 global
    # After pasting with, the region that was just inserted can be
    # highlighted.
    newPref var  selectAfterPaste 0 global ""  [list "Never" "Only if pasting over selection" "Always"] index
	
    # Declare a contextual module: includes items to Cut, Copy, and Paste
    # into the active window
    set cmToken [contextualMenu::declare submenu "clipboard" cutCopyPaste::clipboardCMProc]
	menuRef set $cmToken -updateProc cutCopyPaste::updateClipboardCM
	unset cmToken
} {
    # Activation script.
    cutCopyPaste::activate 1
} {
    # Deactivation script.
    cutCopyPaste::activate 0
} {}}
set feature(encodings) {1.0 global-only -1}
set feature(latexMathbb) {1.4 {TeX Bib} 0 {
    # Initialization script.
    namespace eval TeX {}
    # Make sure TeX mode preferences are available.
    catch {latex.tcl}
    set TeX::UseMathbb 0
    newPref var blackboardBoldSymbols "NZQRCH" TeX {TeX::Mathbb::adjustBindings}
} {
    # Activation script.
    TeX::Mathbb::turnOnOff 1
} {
    # Deactivation script.
    TeX::Mathbb::turnOnOff 0
} {}}
set feature(icons) {0.1 global-only -1}
set feature(betterTemplates) {9.5 global 0 {
    # Initialization script.
    # Define prefs, etc. 
    ::ring::initialize
} {
    # Activation script.
	ring::activatePackage 1
} {
    # Deactivation script.
	ring::activatePackage 0
} {}}
set feature(searchPaths) {1.4 global 0 {
    # Initialization script.
    searchPaths::initialize
} {
    # Activation script.
    searchPaths::activate 1
} {
    # Deactivation script.
    searchPaths::activate 0
} {}}
set feature(hyperSearch) {3.1 global-only 0 {
    # Initialization script
    hypersearch::initialize
} {
	# Activation script
	hypersearch::activate 1
} {
	# Deactivation script
	hypersearch::activate 0
} {}}
set feature(manViewer) {1.0 global 0 {
    # Initialization script
} {
	# Activation script
	manv::activate 1
} {
	# Deactivation script
	manv::activate 0
} {}}
set feature(bibConvert) {2.2 Bib 0 {
    # Initialization script.
} {
    # Activation script.
	Bib::insertConversionItem "Convert To Bib…"
} {
    # Deactivation script.
	if {[info exists Bib::menuToken(bibtexConversions)]} {
		menu::removeItems $Bib::menuToken(bibtexConversions) "Convert To Bib…"
	} 
} {}}
set feature(Alpha) {9.2.4 global-only -1}
set feature(smarterSource) {1.0 global-only 0 {
    # one-off init script
    # location in which smarterSource looks for extension files
    newPref earlyfolder smarterSourceFolder $PREFS "global"  {smarterSource::folderChanged}
    prefs::updateHome smarterSourceFolder
    if {($smarterSourceFolder ne $PREFS)} {
	if {![file exists $smarterSourceFolder]} {
	    set msg "The Smarter Source Folder '$smarterSourceFolder' you set for the Smarter Source extension doesn't appear to exist. You should correct this in the 'Global Preferences > Files' preferences panel."
		alertnote $msg
	}
	alpha::registerEncodingFor $smarterSourceFolder $::alpha::internalEncoding
    }
    namespace eval smarterSource {}
    # This is the "trace proc" called when the user has changed the location 
    # of the "smarterSourceFolder" preference.
    ;proc smarterSource::folderChanged {args} {
	set q "When you change your Smarter Source folder, you should rebuild package indices. Would you like to rebuild now?"
	if {[askyesno $q]} {
	    catch {alpha::buildPackageIndices}
	}
	return
    }
    # Smarter Source version of [alpha::useFilesFor].  This should _never_
    # throw an error.  "args" is included only for future back compatibility
    # purposes, in case we decide to include additional arguments.
    ;proc smarterSource::useFilesFor {filename args} {
	global smarterSourceFolder HOME SUPPORT
	
	if {([file tail $filename] eq "tclIndex")} {
	    # We don't want to over-ride these files.
	    set keepLooking 0
	} elseif {[file::pathStartsWith $filename  [file join $HOME Tcl] relName]} {
	    # File is in the standard AlphaTcl hierarchy.
	    set keepLooking 1
	} elseif {($SUPPORT(local) ne "") && [file isdir $SUPPORT(local)]  && [file::pathStartsWith $filename  [file join $SUPPORT(local) AlphaTcl Tcl] relName]} {
	    # The $SUPPORT(local) directory contains a version of this file.
	    set keepLooking 1
	} elseif {($SUPPORT(user) ne "") && [file isdir $SUPPORT(user)]  && [file::pathStartsWith $filename  [file join $SUPPORT(user) AlphaTcl Tcl] relName]} {
	    # The $SUPPORT(user) directory contains a version of this file.
	    set keepLooking 1
	} else {
	    set keepLooking 0
	}
	if {!$keepLooking} {
	    return [hook::procOriginal "::smarterSource::useFilesFor" $filename]
	}
	# Now we set "filename" to be the path found by the default version
	# of [alpha::useFilesFor] so that any user or sysadmin modifications
	# will still be in affect if we don't find a suitable over-ride.  We
	# could, however, comment this out if we wanted Smarter Source
	# activation to also mean that we explicitly ignore any of these
	# SUPPORT files.
	set filename [lindex  [hook::procOriginal "::smarterSource::useFilesFor" $filename] 0]
	set relName [file join "Tcl" $relName]
	# Now wish to scan from $smart/file.tcl to $smart/dir/file.tcl to
	# $smart/Tcl/Modes/.../file.tcl in order.  We also look for +*.tcl
	# files.  The first time we find something, we stop.  If we haven't
	# found a synonym of the original file we must then of course use the
	# original file (and any + files found).
	set fileList [list]
	set hasSynonym 0
	set elements [file split $relName]
	for {set i 0} {$i < [llength $elements]} {incr i} {
	    set overrideFile [eval [list file join $smarterSourceFolder]  [lrange $elements end-$i end]]

	    if {[file exists $overrideFile] && [file readable $overrideFile]} {
		lappend fileList $overrideFile
		set hasSynonym 1
	    }
	    set rootName [file root $overrideFile]+
	    set pattern  "*[file extension $relName]"
	    foreach extraFile [glob -nocomplain -path $rootName $pattern] {
		if {[file readable $extraFile]} {
		    lappend fileList $extraFile
		}
	    }
	    if {[llength $fileList]} {
		break
	    }
	}
	if {!$hasSynonym} {
	    set fileList [linsert $fileList 0 $filename]
	}
	return $fileList
    }
} {
    # Activation script.
    hook::procRename "::alpha::useFilesFor" "::smarterSource::useFilesFor"
    # Alerts other code as to our current status.
    set smarterSourceStatus 1
	# Add prefs to Files panel in Global Preferences
	alpha::addToPreferencePage Files smarterSourceFolder
} {
    # De-activation script.
    hook::procRevert "::smarterSource::useFilesFor"
    set smarterSourceStatus 0
	# Remove prefs from Files panel in Global Preferences
	alpha::removeFromPreferencePage Files smarterSourceFolder
} {}}
set feature(mailerDefault) {2.1.1 always-on -1}
set feature(colorPrefs) {0.3 global-only 0 {
    # Initialization script
	colPrefs::initialize
} {
	# Activation script
	colPrefs::activate 1
} {
    # De-activation script
	colPrefs::activate 0
} {}}
set feature(spellingAspell) {0.1 always-on -1}
set feature(windowGroups) {2.0 global 0 {} {
	# Activation script
	wingps::activate 1
} {
	# De-activation script
	wingps::activate 0
} {}}
set feature(latexColors) {0.6 TeX 0 {
    # Initialization script.
	TeX::colors::initialize
} {
    # Activation script.
	TeX::colors::activate 1
} {
    # Deactivation script.
	TeX::colors::activate 0
} {}}
set feature(iconifyOnSwitch) {0.2 global 2 {
    # This code is only ever evaluated once
    lappend flagPrefs(Window) iconifyOnSwitch
} {
    # This code is evaluated when we turn on the flag
    hook::register suspendHook iconifyOnSwitch
    hook::register resumeHook deIconifyOnResume
} {
    # This code is evaluated when we turn off the flag
    hook::deregister suspendHook iconifyOnSwitch
    hook::deregister resumeHook deIconifyOnResume
} { 
    # off
}}
set feature(pinyinAccents) {0.1 global-only 0 {
    # Initialization script
} {
	# Activation script
	pinyin::activatePackage 1
} {
	# Deactivation script
	pinyin::activatePackage 0
} {}}
set feature(progressWindows) {0.1 global-only -1}
set feature(extendedAttributes) {1.0 global-only -1}
set feature(documentProjects) {2.1 global-only 0 {
    # Initialization script.
    docProj::initializePackage
} {
    # Activation script.
    docProj::activatePackage 1
} {
    # Deactivation script.
    docProj::activatePackage 0
} {}}
set feature(htmlUtilities) {0.1 global-only -1}
set feature(wwwServices) {1.0 always-on -1}
set feature(autoWrapComments) {0.1 {
    global
} 2 {set autoWrapComments 0 ; lappend flagPrefs(Electrics) autoWrapComments} {set autoWrapComments 1} {set autoWrapComments 0} {}}
set feature(licenseTemplates) {0.4 always-on -1}
set feature(mailerEudora) {2.1.1 always-on -1}
set feature(laTeXMenu) {{for TeX mode} {TeX Bib} 1 {ensureset laTeXMenu LaTeX

    # Initialization script.
    TeX::initializeMenu
} {
    # Activation script.
    TeX::activateMenu 1
} {
    # Deactivation script.
    TeX::activateMenu 0
} {}}
set feature(vcCvs) {0.4.1 always-on -1}
set feature(alphaServer) {3.1 global-only 0 {
    # Initialization script.
} {
    # Activation script.
    ::alphaServer::start
} {
    # Deactivation script.
    ::alphaServer::stop
} {}}
set feature(consoleLauncher) {1.0 global 0 {
    # Initialization script
    colaunch::initializePackage
} {
	# Activation script
	colaunch::activate 1
} {
    # De-activation script
    colaunch::activate 0
} {}}
set feature(bibDelimited) {1.1 Bib 0 {
    # Initialization script.
    # We require Bib v 4.3 for 'Bib::nextEntryStart'.
    alpha::package require -loose Bib 4.3
} {
    # Activation script.
	Bib::insertConversionItem "Bib To Delimited…"
	Bib::insertConversionItem "Delimited To Bib…"
} {
    # Deactivation script.
	if {[info exists Bib::menuToken(bibtexConversions)]} {
		menu::removeItems $Bib::menuToken(bibtexConversions) "Bib To Delimited…" "Delimited To Bib…"
	} 
} {}}
set feature(filtersMenu) {4.0 global 1 {ensureset filtersMenu Filters

    # Initialization script.
	flt::initializePackage
} {
	# Activation script.
	flt::activatePackage 1
} {
	# Deactivation script.
	flt::activatePackage 0
} {}}
set feature(specialIndentForCaseLabel) {0.1 {
    global
} 2 {set specialIndentForCaseLabel 0 ; lappend flagPrefs(Electrics) specialIndentForCaseLabel} {set specialIndentForCaseLabel 1} {set specialIndentForCaseLabel 0} {}}
set feature(latexAccents) {1.5 {TeX Bib} 0 {
    # Initialization script
	TeX::Accents::turnOn
} {
    # Activation script.
    TeX::Accents::activate 1
} {
    # Deactivation script.
   TeX::Accents::activate 0
} {
    # Off script
	TeX::Accents::turnOff
}}
set feature(contacts) {0.1 global-only 0 {} {
    # Activation script
} {} {}}
set feature(modeAssistant) {1.0 global-only -1}
set feature(favoritesMenu) {1.4 global-only 0 {
    # Initialization script.
    favorites::initialize
} {
    # Activation script.
    favorites::activate 1
} {
    # De-activation script.
    favorites::activate 0
} {}}
set feature(addressBook) {1.3 global-only 0 {
    # Initialization script.
    namespace eval AddressBook {}
    namespace eval addressBook {
	# This is the name of the current address book.
	variable Current
	ensureset Current "Default"
	# These are the default fields used to create entries.
	variable DefaultEntryFields [list  "Full Name"  "Organization"  "Address Line 1" "Address Line 2" "Address Line 3"  "Phone Number" "Email" "Home Page"]
	# Make sure that the Default book has some default fields.
	variable EntryFields
	ensureset EntryFields(Default) $DefaultEntryFields
    }
    # This not only returns the current address book, it automatically makes
    # some of the common address book vars global, and creates several local
    # variables for use in the current procedure.
	proc addressBook::current {{newCurrent ""}} {
		variable Current
		variable EntryFields
		# Set a new current addressBook if desired.
		if {[string length $newCurrent]} {set Current $newCurrent} 
		# Set these local variables.
		variable current $Current
		variable book    ::AddressBook::$current
		variable books   [array names EntryFields]
		variable books   [concat "Default" [lremove $books "Default"]]
		variable entries [array names $book]
		variable fields  $EntryFields($current)
		ensureset EntryFields($current) [list ]
		# Uplevel some local variables.
		uplevel 1 {
			variable Current
			variable EntryFields
			variable current 
			variable book    
			variable books   
			variable entries 
			variable fields  
		}
	}
    # Register a build proc for the menu.
	proc addressBook::buildMenu {} {
		variable menuToken
		
		if {![info exists menuToken(addressBook)]} {
			set menuToken(addressBook) [menuRef create -title "Address Book" -name addressBook  -command addressBook::menuProc]
			set menuToken(currentBook) [menuRef create -title "Current Address Book" -name currentAddressBook -command addressBook::currentProc]
		} else {
			menuRef clear $menuToken(addressBook)
			menuRef clear $menuToken(currentBook)
		}
		
		set token $menuToken(addressBook)
		current
		
		set dim1 [expr {[llength $entries]} ? 1 : 0]
		set dim2 [expr {[llength $fields] > 0} ? 1 : 0]
		set dim3 [expr {[llength $fields] > 1} ? 1 : 0]
		set dim4 [expr {[llength $books] > 1} ? 1 : 0]
		
		menuItem append $token "E Mail…" -enabled $dim1
		menuItem append $token "Insert Mailing Label…" -enabled $dim1
		menuItem append $token "Create Mailing List…" -enabled $dim1
		menuItem append $token "-"
		menuItem append $token "Search Entries…" -enabled $dim1
		menuItem append $token "Search Fields…" -enabled $dim1
		menuItem append $token "Display All Entries" -enabled $dim1
		menuItem append $token "Current Address Book" -submenu $menuToken(currentBook)
		menuItem append $token "-"
		menuItem append $token "Add Entry…"
		menuItem append $token "Edit Entry…" -enabled $dim1
		menuItem append $token "Rename Entry…" -enabled $dim1
		menuItem append $token "Remove Entry…" -enabled $dim1
		menuItem append $token "Collect All Emails…"
		menuItem append $token "Update Mail Electrics" -enabled $dim1
		menuItem append $token "-"
		menuItem append $token "Add Entry Field…"
		menuItem append $token "Remove Entry Field…" -enabled $dim2
		menuItem append $token "Arrange Entry Fields…" -enabled $dim3
		menuItem append $token "-"
		menuItem append $token "Address Book Prefs…"
		menuItem append $token "Address Book Help" 

		set currentList [linsert $books 1 "-"]
		if {[llength $currentList] > 2} {lappend currentList "-"}

		foreach item $currentList {
			set idx [menuItem append $menuToken(currentBook) $item]
# 			menuItem set $menuToken(currentBook) $idx -state [expr {$item == $current} ? 1 : 0]
		} 
		addressBook::postBuildMenu
		foreach item [list "New Address Book…" "Rename Address Book…"  "Copy Address Book…" "Remove Address Book…"] {
			menuItem append $menuToken(currentBook) $item
		} 
	}

	# Register a new entry for the 'New Documents' menu item.
    set {newDocTypes(New Address Book Entry)} addressBook::addEntry
} {
    # Activation script.
	namespace eval addressBook {
		variable menuToken
		addressBook::buildMenu
		menuItem insert $menu::core(Tools) 0 "Address Book" -submenu $menuToken(addressBook)
	}
	# To include all entry names as Mail Menu electrics, turn this item on.
    # This will only create electrics for entry names which are a single word,
    # i.e. no spaces||To never use entry names as Mail Menu electrics, turn
    # this item off
	newPref flag autoUpdateMailElectrics 0 Mail
	if {$MailmodeVars(autoUpdateMailElectrics)} {
		addressBook::updateMailElectrics "" 1
	} 
	addressBook::registerOWH 1
} {
    # De-activation script.
	menu::removeItems $menu::core(Tools) "Address Book"
	addressBook::registerOWH 0
} {}}
set feature(autoContinueComment) {0.1 {
    global
} 2 {set autoContinueComment 0 ; lappend flagPrefs(Electrics) autoContinueComment} {set autoContinueComment 1} {set autoContinueComment 0} {}}
set feature(AlphaTcl) {9.2.4 global-only -1}
set feature(countryFlags) {1.0 always-on -1}
set feature(fileCompression) {1.1 global-only 0 {
    # Initialization script.
    compress::initializePackage
} {
    # Activation script.
    compress::activatePackage 1
} {
    # Deactivation script.
    compress::activatePackage 0
} {}}
set feature(wwwDictionary) {1.3 global-only 0 {
    # Initialization script.
    # Call this special initialization script.
    dictionary::www::initializePackage
} {
    # Activation script.
	dictionary::www::activatePackage 1
} {
    # De-activation script.
	dictionary::www::activatePackage 0
} {}}
set feature(windowLines) {1.6 global-only 0 {
    # Initialization script.
    winLines::initialize
} {
    # Activation script.
    winLines::activate 1
} {
    # Deactivation script.
    winLines::activate 0
} {}}
set feature(toolbar) {0.2 global-only 0 {} {
    # Activation script
    toolbar::initializePackage
} {} {}}
set feature(odbEditor) {1.0b3 global-only 0 {} {
    hook::register aevtodocHook odb::aevtodocHook 
    hook::register savePostHook odb::modifiedHook
    hook::register winChangedNameHook odb::winChangedNameHook
    hook::register closeHook odb::closeHook
} {
    hook::deregister aevtodocHook odb::aevtodocHook 
    hook::deregister savePostHook odb::modifiedHook
    hook::deregister winChangedNameHook odb::winChangedNameHook
    hook::deregister closeHook odb::closeHook
} {}}
set feature(teXServices) {1.2 always-on -1}
set feature(dictionary) {2.5.0 global-only 0 {
    # Startup script
    alpha::package require -loose Alpha 9.0a1
} {
    # Activation script, create namespace and register a proc which will be
    # evaluated when all the basic menus are completely built
    namespace eval Dico {}
    ::Dico::loadFeature
} {
    # De-activation script.
    ::Dico::removeFeature
} {}}
set feature(macMenu) {4.0 global 1 {ensureset macMenu Mac

    # Initialization script
} {
	# Activation script
	mac::activatePackage 1
} {
	# Deactivation script
	mac::activatePackage 0
} {}}
set feature(spellcheck) {1.2 global-only 0 {
    # Initialization script.
    spell::initializePackage
} {
    # Activation script.
    spell::activatePackage 1
} {
    # Deactivation script.
    spell::activatePackage 0
} {}}
set feature(characterPalettes) {0.1 global-only 0 {
    # Initialization script
} {
	# Activation script
	charpal::activatePackage 1
} {
	# Deactivation script
	charpal::activatePackage 0
} {}}
set feature(mailerAppleMail) {1.0 always-on -1}
set feature(vcSvn) {0.2 always-on -1}
set feature(recentFolders) {1.9 global-only 0 {
    # Initialization script.
    recentdirs::initializeFolders
} {
    # Activation script.
    recentdirs::activateFolders 1
} {
    # De-activation script.
    recentdirs::activateFolders 0
} {}}
set feature(terminalPuts) {1.5.1 global-only 0 {
   package::addPrefsDialog terminal
   # To have the terminal package handle [puts stdout] and
   # [puts stderr], click this box. || To restore the default
   # definition of [puts stdout] and [puts stderr], click this box.
   newPref flag takeOverPuts [expr {[info tclversion]<8.0}] terminal  terminal::manage_puts
} {
   terminal::manage_puts "Activation---the magic word is ON."
} {
   terminal::manage_puts "Deactivation---the magic word is OFF."
} {}}
set feature(specialCharacters) {1.5 global-only 0 {
    # Initialization script.
    specialChars::initialize
} {
    # Activation script.
    specialChars::activate 1
} {
    # De-activation script.
    specialChars::activate 0
} {}}
set feature(notes) {1.3 global-only 0 {
    # Initialization script.
    notes::initializePackage
} {
    # Activation script.
    notes::activatePackage 1
} {
    # Deactivation script.
    notes::activatePackage 0
} {}}
set feature(vcFossil) {0.1 always-on -1}
set feature(alphaDeveloperMenu) {1.5 {global Chng Tcl Inst} 1 {ensureset alphaDeveloperMenu AlphaDev

    # Initialization script.
    alphadev::initializePackage
} {
    # Activation script.
    alphadev::activatePackage 1
} {
    # Deactivation script.
    alphadev::activatePackage 0
} {}}
set feature(indentUsingSpacesOnly) {0.1 {
    global TeX
} 2 {set indentUsingSpacesOnly 0 ; lappend flagPrefs(Electrics) indentUsingSpacesOnly} {set indentUsingSpacesOnly 1} {set indentUsingSpacesOnly 0} {}}
set feature(supportFoldersTool) {1.1 global 0 {
    # Initialization script.
    supportFolder::initialize
} {
    # Activation script.
    supportFolder::activate 1
} {
    # Deactivation script.
    supportFolder::activate 0
} {}}
set feature(wwwMenu) {3.1 {global WWW HTML} 1 {ensureset wwwMenu WWW

    # Initialization script.
    WWW::initializeMenu
} {
    # Activation script.
    WWW::activateMenu 1
} {
    # Deactivation script.
    WWW::activateMenu 0
} {}}
set feature(isoTime) {1.9 global-only 0 {} {
  # Time-stamps are in ISO or a shorter, more readable format.
  newPref var timeStampStyle standard global "" "short standard offset"
  lunion varPrefs(International) timeStampStyle
  namespace eval ISOTime {}
} {} {}}
set feature(bibToRefer) {1.4 Bib 0 {
    # Initialization script.
    alpha::package require -loose Bib 4.3
} {
    # Activation script.
	Bib::insertConversionItem "Bib To Refer…"
} {
    # Deactivation script.
	if {[info exists Bib::menuToken(bibtexConversions)]} {
		menu::removeItems $Bib::menuToken(bibtexConversions) "Bib To Refer…"
	} 
} {}}
set feature(functionComments) {1.3 global 0 {
    # Initialization script.
    funComment::initializePackage
} {
    # Activation script.
    funComment::activatePackage 1
} {
    # Deactivation script.
    funComment::activatePackage 0
} {}}
set feature(userMenu) {1.1 global 1 {ensureset userMenu userMenu

	# Initialization script
	usr::initialize
} {
	# Activation script
	usr::activate 1
} {
	# Deactivation script
	usr::activate 0
} {}}
set feature(fileServices) {1.0 always-on -1}
set feature(vcGit) {0.1.1 always-on -1}
set feature(latexBbToViewport) {0.3 TeX 0 {
    # Initialization script.
} {
    # Activation script.
	TeX::BbToViewport::activate 1
} {
    # Deactivation script.
	TeX::BbToViewport::activate 0
} {}}
set feature(bugsTracker) {1.1 always-on -1}
set feature(globalM2Bindings) {1.2 global-only 0 {
    #no global init script
} {
	#####activation script####
	if {[info exists M2modeVars(globalM2Bindings)]} {
		# feature was previously activated and M2 mode is in cooperative state
		if {!$M2modeVars(globalM2Bindings)} {
			set M2modeVars(globalM2Bindings) "1"
			prefs::modified M2modeVars(globalM2Bindings)
		}
		M2::setGlobalBindings
	} else {
		# Feature is activated the very first time and M2 mode needs to be
		# made cooperative. Put M2 mode into cooperative state.
		set M2firstInitForBindings 1
		prefs::modified M2firstInitForBindings
		set M2modeVars(globalM2Bindings) "1"
		prefs::modified M2modeVars(globalM2Bindings)
		# Use M2 mode to activate bindings 
		M2::setGlobalBindings
	}
} {
	####deactivation script####
	if {[info exists M2modeVars(globalM2Bindings)]} {
		# feature was previously activated and M2 mode is in cooperative state
		if {$M2modeVars(globalM2Bindings)} {
			set M2modeVars(globalM2Bindings) "0"
			prefs::modified M2modeVars(globalM2Bindings)
		}
		M2::unsetGlobalBindings 
	} else {
		# M2 mode is not in cooperative state, force deactivation:
		# Ctrl-0
		set bindingLst [binding list -command M2::openWorkFiles]
		set theShortCut "[lindex $bindingLst 0 0] [lindex $bindingLst 0 1]"
		if { ("$theShortCut" == "z 0") } { catch {binding delete $theShortCut} }
		# Ctrl-1
		set bindingLst [binding list -command M2::launchShellAndSimulate]
		set theShortCut "[lindex $bindingLst 0 0] [lindex $bindingLst 0 1]"
		if { ("$theShortCut" == "z 1") } { catch {binding delete $theShortCut} }
		if { ("$theShortCut" == "z 2") } { catch {binding delete $theShortCut} }
		# Ctrl-2
		set bindingLst [binding list -command M2::launchShell]
		set theShortCut "[lindex $bindingLst 0 0] [lindex $bindingLst 0 1]"
		if { ("$theShortCut" == "z 1") } { catch {binding delete $theShortCut} }
		if { ("$theShortCut" == "z 2") } { catch {binding delete $theShortCut} }
	}
} {}}
set feature(comments) {1.0.1 global-only -1}
set feature(upgradeAlpha) {0.3 always-on -1}
set feature(subversionSubmenu) {0.2 global 0 {} {
	# Activation script
	svn::activateMenu 1
} {
	# De-activation script
	svn::activateMenu 0
} {}}
set feature(eeMenu) {0.4 global 1 {ensureset eeMenu EE

   auto_load eemenu::main
} {
   eemenu::init_bindings
   eemenu::build_menu
} {
   eval eemenu::deactivate [array names eemenu::cmdA]
} {}}
set feature(commentsNotSpecialOnIndent) {0.1 {
    global TeX
} 2 {set commentsNotSpecialOnIndent 0 ; lappend flagPrefs(Electrics) commentsNotSpecialOnIndent} {set commentsNotSpecialOnIndent 1} {set commentsNotSpecialOnIndent 0} {}}
set feature(appIdentifiers) {1.0 always-on -1}
